package com.xiehospital.system.service;

import com.xiehospital.common.core.domain.entity.SysBtype;

import java.util.List;

/**
 * 床位类型信息 服务层
 * 
 * @author Xierujian
 */
public interface ISysBtypeService
{
    /**
     * 查询床位类型信息集合
     * 
     * @param btype 床位类型信息
     * @return 床位类型列表
     */
    public List<SysBtype> selectBtypeList(SysBtype btype);

    /**
     * 查询所有床位类型
     * 
     * @return 床位类型列表
     */
    public List<SysBtype> selectBtypeAll();

    /**
     * 通过床位类型ID查询床位类型信息
     * 
     * @param btypeId 床位类型ID
     * @return 角色对象信息
     */
    public SysBtype selectBtypeById(Long btypeId);

    /**
     * 根据用户ID获取床位类型选择框列表
     * 
     * @param userId 用户ID
     * @return 选中床位类型ID列表
     */
    public List<Long> selectBtypeListByUserId(Long userId);

    /**
     * 校验床位类型名称
     * 
     * @param btype 床位类型信息
     * @return 结果
     */
    public boolean checkBtypeNameUnique(SysBtype btype);

    /**
     * 校验床位类型编码
     * 
     * @param btype 床位类型信息
     * @return 结果
     */
    public boolean checkBtypeCodeUnique(SysBtype btype);

    /**
     * 通过床位类型ID查询床位类型使用数量
     * 
     * @param btypeId 床位类型ID
     * @return 结果
     */
    public int countBedBtypeByBtypeId(Long btypeId);

    /**
     * 删除床位类型信息
     * 
     * @param btypeId 床位类型ID
     * @return 结果
     */
    public int deleteBtypeById(Long btypeId);

    /**
     * 批量删除床位类型信息
     * 
     * @param btypeIds 需要删除的床位类型ID
     * @return 结果
     */
    public int deleteBtypeByIds(Long[] btypeIds);

    /**
     * 新增保存床位类型信息
     * 
     * @param btype 床位类型信息
     * @return 结果
     */
    public int insertBtype(SysBtype btype);

    /**
     * 修改保存床位类型信息
     * 
     * @param btype 床位类型信息
     * @return 结果
     */
    public int updateBtype(SysBtype btype);
}
